from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from settings import DB_URL
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm import declarative_base

# 创建异步的 SQLAlchemy engine
async_engine = create_async_engine(
    DB_URL,
    echo=False,  # 在生产环境中关闭echo
    pool_size=20,  # 增加连接池大小
    max_overflow=30,  # 增加溢出连接数
    pool_timeout=60,  # 增加获取连接的超时时间
    pool_recycle=300,  # 减少连接回收时间，定期更新连接
    pool_pre_ping=True,  # 启用连接健康检查
    pool_use_lifo=True,  # 使用LIFO队列管理连接池
)

# 创建异步的 SessionLocal 类
AsyncSessionFactory = sessionmaker(
    bind=async_engine,
    class_=AsyncSession,
    autoflush=False,  # 我们手动控制flush
    autocommit=False,  # 我们手动控制commit
    expire_on_commit=False
)
Base=declarative_base()
from . import user,address